CompilableWebという戯れ言


概要

戯れ言です。

UnityがWebPlayerプラグインを捨てるのでハイになって書きました。


UnityがWebPlayerプラグイン無しでもブラウザで動くようになる話はこのへん

http://sassembla.github.io/Public/2014:04:08%2013-36-09/2014:04:08%2013-36-09.html



ホント面倒でやめたい事

「HTMLからいろいろロードしてJSからいろいろロードしてページ単位とかcacheとかコントロールしてCSSロードして画像がリソースが」


かったるいわ!!! やりたいことはビュー描画とローディングとアクションなんだよ!! みたいな話に対して、


コンパイルしたらいい感じに動く、というもののほうが、楽さがあっていいなーと思っている。

で、そこにいろんなゲームエンジンとかがこう、差し込んできた感があり。



これまでのAltJSがもたらしてきたものがとうとうイイ感じになる

これまでのAltJSで自分が一番不満だったのは、Viewへのサポート、

もっというと


HTMLがサポートしている領域でないとブラウザ描画してくれないのですがそのへんにどうアプローチするか


みたいな話で、まあそりゃそうなんだけど、AltJSでビューを持とうとしたやつはGなんとかくらいしか覚えがない。

そして、これからもAltJSではブラウザビューが救える予定はないんだろうなーという気になっている。


AltJSでブラウザでのインターフェース作成が救われたかどうか

そんで、えっと、描画? が、AltJSで楽になった? みたいな話。


Noでしょ。

HTMLを吐き出すコードはAltJSから吐けるようになるから、そこから先は楽に、、みたいな感じで。

構造化できるのはJSまでで、それでももちろんものすごくメリットがあった。


ただ、どこかから先は、HTML、CSS、そのへんに頼らないと表現できない。

そういうカベに当たる。

だって今のブラウザ、HTMLが基礎なんだぜ。

Hyper Text Markup Language なんだぜ。アクティブなGUIの基礎としてはあまりにあまりだ。

→だもんでHTML5ですよみたいな話だったりするし、そうでなかったりもするし。


で、JSだけでこれらHTMLから始まるブラウザインターフェースの全部を御すのは、並大抵のめんどくささじゃないと思っている。

リソース管理やインターフェース階層構造の所持、管理、イベントのハンドリングとか諸々、を、AltJSとウデ一本で、、


面倒くさい。

実際面倒くさい。


そこに、ゲームエンジン、という、画面全部をゼロから作るのをハナから前提にした差し込みが入ったのが今。



描画が可能になる。

階層化が可能になる。

2Dリソースの管理が可能になる。

3Dリソースの多大な表現能力がぶん回せる。

サウンドの力に頼る事が出来る。

コンパイルが可能になる。


しかもゲームエンジン、ゲームがつくれる。


やっと「必要とあらばブラウザインターフェースのルールをコンテンツが作れる」世界になるのかなーと思っている。



これからの、HTML的にお行儀の良いWebデザインと、HTML的にはお行儀の悪いWebデザインと、壊滅的な混沌を運んでくるヤツ

こないだのキョン君のLT大会@tokyoでモン様とかとお話ししてたけど、


FlashみたいなWebの操作方法をまるっと無視したインターフェースがまた現れるのかなー、

殺意~みたいな話をしたような覚えがあって、



自分は、


「HTML5勢」

= WebComponentsとかShadowDOMとか、

HTMLのお行儀自体を拡張して、

その中で頑張ってモダンになろうとしてる苦労人的仕事人グループ


と、


「良いじゃんそんな構造とか意識しないでも、JSとHTML吐かれれば動くし! ははは!!」

= 最悪HTMLが形作っていた作法さえ破壊しそうな、

以前のFlashでできたサイトのような操作規範破壊を屁とも思わない

ユーザーインターフェース濫造グループ


の二つの派閥に別れるかなーみたいな予想をしている。


作法として正しいのは前者、効率は後者が圧倒的になるだろうと思っている。


この分派をしでかす大元は、

「リソース読み込みのバインディングが自動化される世界自動化されない世界

がばっちり別れる事にあると思って見てる。

自分はこれらの中間、ただし後者のほうによった形で存在したいと思っている。



CompilableWebとか

たぶん俺が言ってるだけの[コンパイラブルウェブ]って言葉があって、


Compilableな言語で書かれてCompile後はとにかくそんな感じで動くWebApplicationになるんだよってなやつで

楽なんだよ。

だってタイミングとか言語の力を使って静的にコンパイルできるんだぜ。チェックし放題だぜ。拡張し放題だぜ。(誇張と悪意がある)


もちろん前からあるけど、事情が違ってきてる。


手法がやっと光さす感じになった

浅学な自分が知る限りその走りはGなんとかって会社が買収したWebToolkitってヤツだったんだけど、

目的はともかく手段と舵取りが最悪だったので未来がなかった。


たたかう/にげる なら、「利点と能力を知った上で逃げる」を選ぶべき代物だった。


でも今度と今後はちょっと違う。2つのポイントで違う。


・言語をそのまま置換して云々的なクソッタレなアプローチをとってない。

量に比例して遅くなる度合いが酷い。つまりコンパイル/コンバートが無限に遅くなる

対応マップがないと変換されない。Latestが伸びにくい。


・変換の途中にLLVMが居る。LLVM IRがある。

IRにさえ出来れば大概なんとかなる世界になった。


LLVM IR的な未来

多大だと思うのでそっちに一回変換されてしまえばもう

なんとでもなると思う。

ほんとの資産は、LLVMへの In も Out も、全てが交換可能なところ。




結論も決着もない。


まあまだ夢で、実際に「ブラウザとそのブラウザを積んでるマシンの差」に苦しみ続ける世界がより顕著になるだけだと思うけど。

安売りされてるマシンのおぞましいまでのブラウザ性能に苦しむ人が沢山出る。


もう出てるけどもっと出る。


ともあれ第一弾はやっちまったので、楽しめそう。

楽しもう。